package io.github.l86400.component.selenium.core.config;

import cn.hutool.core.io.FileUtil;
import cn.hutool.system.OsInfo;
import cn.hutool.system.SystemUtil;
import io.github.l86400.util.bean.EmptyUtil;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.util.Arrays;
import java.util.Optional;

@Slf4j
public class ChromeDriverConfig {
    public static void chromeDriver(String version) {
        String chromeDriverPath = System.getProperty("webdriver.chrome.driver");
        if (!EmptyUtil.isEmpty(chromeDriverPath)) {
            return;
        }
        OsInfo osInfo = SystemUtil.getOsInfo();
        File[] files = null;
        if (osInfo.isMac()) {
            files = FileUtil.ls(ChromeDriverConfig.class.getResource("/chromedriver/mac").getPath());
        } else if (osInfo.isWindows()) {
            files = FileUtil.ls("C:\\opt\\lq\\framework\\chromedriver\\win");
        }else if(osInfo.isLinux()){
            files = FileUtil.ls("/opt/lq/framework/chromedriver\\linux");
        }
        if (EmptyUtil.isEmpty(files)) {
            log.warn("没有找到对应chromedriver，浏览器版本：{}，当前系统信息：{}", version, osInfo);
            return;
        }
        Optional<File> fileOptional = Arrays.stream(files).filter(file -> file.getName().startsWith("chromedriver_" + version)).findFirst();
        if (fileOptional.isPresent()) {
            log.debug("设置Property，key：webdriver.chrome.driver，value：{}", fileOptional.get().getAbsolutePath());
            System.setProperty("webdriver.chrome.driver", fileOptional.get().getAbsolutePath());
        } else {
            log.warn("没有找到对应chromedriver，浏览器版本：{}，当前系统信息：{}", version, osInfo);
        }
    }
}
